#ifndef MAINWIDGET_H
#define MAINWIDGET_H

#include <QWidget>
#include<QPushButton>
#include<QHBoxLayout>
#include<QVBoxLayout>
#include<QLineEdit>
#include"Mode/data.h"
#include"SessionFriendArea.h"
QT_BEGIN_NAMESPACE
namespace Ui {
class mainWidget;
}
QT_END_NAMESPACE

class mainWidget : public QWidget
{
    Q_OBJECT
private:
    mainWidget(QWidget *parent = nullptr);
    static mainWidget* instance;
public:
    static mainWidget* mainWidgetInstance();

    /*初始化主窗口布局*/
    void initMainWidget();
    //初始化最左侧窗口布局
    void initLeftWidget();
    //初始化中间窗口布局
    void initMidWidget();
    //初始化最右侧窗口布局
    void initRightWidget();
    //初始化槽函数
    void initSignalSlot();
    //会话按钮槽函数
    void sessionButtonClicked();
    //好友列表按钮槽函数
    void friendListButtonClicked();
    //好友申请按钮槽函数
    void applyButtonClicked();
    //加载会话列表
    void loadSessionList();
    //加载好友列表
    void loadFriendList();
    //加载好友申请列表
    void loadApplyList();
    ~mainWidget();

private:
    //当前被点击的按钮类型
    enum ACTIVE_TAB
    {
       SESSION_LIST, //会话列表状态
       FRIEND_LIST,  //按钮处于好友列表状态
       APPLY_LIST    //处于好友申请状态
    };
    //类型默认是SESSION_LIST
    ACTIVE_TAB currentTabStatu = ACTIVE_TAB::SESSION_LIST;
    Ui::mainWidget *ui;
    //窗口最左侧部分
    QWidget* mainWindowLeft;
    //窗口中间部分
    QWidget* mainWindowMid;
    //窗口最右侧部分
    QWidget* mainWindowRight;

    //用户头像按钮
    QPushButton* userAvaterButton;
    //用户会话按钮
    QPushButton* sessionListButtton;
    //好友列表按钮
    QPushButton* friendListButton;
    //好友申请按钮
    QPushButton* applyButton;

    //搜索框
    QLineEdit* searchEdit;
    //添加好友按钮
    QPushButton* addFriendButton;

};
#endif // MAINWIDGET_H
